import request from '@/utils/request'
import { fetchOcr } from '@/utils/request'
import { getToken } from '@/utils/auth'

// 登录方法
export function login(username, password, code, uuid) {
  const data = {
    username,
    password,
    code,
    uuid
  }
  return request({
    url: '/login',
    headers: {
      isToken: false,
      repeatSubmit: false
    },
    method: 'post',
    data: data
  })
}

// 注册方法
export function register(data) {
  return request({
    url: '/register',
    headers: {
      isToken: false
    },
    method: 'post',
    data: data
  })
}

// 获取用户详细信息
export function getInfo() {
  return request({
    url: '/getInfo',
    method: 'get'
  })
}

// 退出方法
export function logout() {
  // 为了避免 cancelToken 问题，使用 fetch 而不是 axios
  const baseURL = import.meta.env.VITE_APP_BASE_API;
  const token = getToken();
  
  console.log('使用 fetch 发送退出请求');
  
  return fetch(baseURL + '/logout', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': token ? 'Bearer ' + token : ''
    }
  })
  .then(response => {
    if (!response.ok) {
      throw new Error(`退出请求失败: ${response.status} ${response.statusText}`);
    }
    return response.json().catch(() => ({})); // 即使 JSON 解析失败也返回空对象
  })
  .catch(error => {
    console.error('退出请求错误:', error);
    return Promise.resolve({}); // 即使出错也返回成功的 Promise
  });
}

// 获取验证码
export function getCodeImg() {
  return request({
    url: '/captchaImage',
    headers: {
      isToken: false
    },
    method: 'get',
    timeout: 20000
  })
}